Systems and methods for managing inbound calls and outbound calls for a specific agent

ABSTRACT

Systems and methods for managing calls, both inbound and outbound, for available agents over a plurality of lines, where each call received or placed is pre-identified to be connected to one specific agent and upon the automatic detection of the call being received or answered, the call is either connected to the specific agent or placed in a queue for that specific agent.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of U.S. patent applicationSer. No. 11/290,977 filed Nov. 30, 2005, and entitled “Systems andMethods for Managing Call Processing for a Specific Agent,” the contentsof which are incorporated by reference in their entirety into thepresent application.

FIELD OF THE INVENTION

The invention is related to the field of telephony and communications.More particularly, the invention relates to automated call distributiontechnology.

BACKGROUND OF THE INVENTION

Automated call distribution devices or call centers provide a way tohandle large loads of incoming telephone calls for a particular businessby routing the calls to the appropriate recorded information or serviceagent which can handle that particular call. In this business ofcustomer contact technologies, several pieces of technology are widelyused to provide customer contact. One such technology is a predictivedialer. This technology automatically places outbound calls, andconnects only the human answered call results to agents to handle thecalls. Since some of the calls result in non-human answered calls, noconnection calls, not in service calls, or other non-responsive eventsthat may be processed by the system without the need for an agent, thesystems will place more calls than there are available agents based uponvarious mathematical formulas to predict the right number of calls toplace to keep the agents busy talking while minimizing abandoned callsthat can occur when more human answered calls occur than there areavailable agents. These systems generally place calls that can beconnected to any one of a group of agents.

While this method of placing calls that can be handled by any one of aplurality of agents can maximize productivity and minimize abandonedcalls, it presents a problem for businesses that desire to have specificcalls that are placed connected only to specific agents. This may bedesirable in several circumstances, for example, where there is the needto maintain continuity of the personal relationship between the personbeing called and the specific agent. Other circumstances are in thecontext of collections calls and customer service. Additionally, manyoutbound calls placed do not result in successful contact with thedesired individual and messages must be left on answering machines orvoicemail, or with another person to ask for the person to call back.When these inbound calls are returned at a later time, the desire may beonce again to have the caller connected to the specific agent. So thereis the need to improve existing customer contact technologies to allowfor specific calls, whether they are outbound placed calls, or inboundcalls, to be connected to specific agents while maintaining a high levelof agent productivity at the same time.

BRIEF SUMMARY OF THE INVENTION

The present invention is directed to systems and methods for managingoutbound calls, as well as inbound calls, associated with a specificagent. According to an embodiment of the invention, there are disclosedsystems and methods for managing outbound calls associated with aspecific agent. The methods include determining several sets of outboundcalls, where each set of outbound calls is associated with a specificagent of a group of agents and placing those outbound calls. The systemsand methods further include detecting a connection of one of the placedcalls and routing the connected outbound call to the specific agentassociated with that outbound call.

In an embodiment of the present invention for managing outbound calls,the number of outbound calls to be placed in each set of outbound callsfor each agent and when each of those calls should be placed isdetermined using a mathematical formula. In another embodiment of thepresent invention, once an agent has been connected to a call, the othercalls are either terminated, routed to a different agent, played amessage asking them to return the call, played a message to hold for thespecific agent and/or played a message asking to leave a voicemail. Inyet another embodiment of the present invention, when a call is placedon hold the specific agent associated with that call is notified thatthe caller is waiting.

According to an embodiment of the invention, there are disclosed systemsand methods for simultaneously managing outbound calls and inbound callsrouted to a specific agent. The systems and methods includeautomatically placing outbound calls for available agents where eachplaced call is pre-associated with a specific agent of a group ofagents. The systems and methods further include detecting that theplaced call has been answered. While the outbound calls are beingplaced, the specific agent associated with the placed outbound calls isalso identified as the specific agent for whom at least one inbound callis associated. Next, either the answered outbound call or the receivedinbound call is routed to the specific agent associated with that call.When the specific agent becomes available to accept a call, the nextinbound or outbound call associated with that specific agent is routedto the specific agent.

In an embodiment of the present invention, the step of identifying whichspecific agent each inbound call must be connected to is determined by aphone number associated with the calling party, by receiving digitsselected by the caller, and/or by the caller saying a specificidentifier associated with the specific agent. In another embodiment ofthe present invention, the specific identifier is the agent's name,agent's title, agent's associated service number or the like.

In an embodiment of the present invention for simultaneously managingoutbound calls and inbound calls routed to a specific agent, the numberof outbound calls to be placed in each set of outbound calls and wheneach of those calls should be placed for each agent is determined usinga mathematical formula. In other alternative embodiments of the presentinvention, once an agent has been connected to a call, the other callsare either terminated, routed to a different agent, played a messageasking them to return the call, played a message to hold for thespecific agent and/or played a message asking to leave a voicemail. Inyet another embodiment of the present invention, when a call is placedon hold the specific agent associated with that call is notified thatthe caller is waiting.

In another embodiment of the present invention, if an inbound call isreceived and routed to the specific agent, all pending unansweredoutbound calls associated with that specific agent are terminated. Inyet another embodiment of the present invention, if an inbound call isreceived and the specific agent is unavailable, the caller is offeredthe option to hold for the specific agent to become available or toleave a voicemail message. In yet another embodiment of the presentinvention, if an inbound caller does not hold, once the specific agentbecomes available an outbound call associated with the specific agent isplaced to return the inbound call that did not hold. In anotherembodiment of the present invention, the caller may choose to leave avoicemail that is played for the specific agent once the specific agentbecomes available. In yet another embodiment of the present invention,after the specific agent has played the voicemail, the specific agentreturns the call as an outbound call associated with the specific agent.

According to an embodiment of the invention, there is disclosed a systemfor simultaneously managing outbound calls and inbound calls routed to aspecific agent. The system includes an automatic call distributorconnected to a network, where the automatic call distributor detectsinbound calls associated with a specific agent of a group of agentsconnected to the automatic call distributor. The system further includesa predictive dialer connected to the network and automatic calldistributor, where the predictive dialer places outbound callsassociated with a specific agent on the network. The specific agent isallocated to handle a connected outbound call routed from the predictivedialer to the specific agent in the group of agents connected to theautomatic call distributor.

In an embodiment of the present invention, the system further includes aCTI server in direct communication with the predictive dialer and anautomatic call distributor, where the CTI server allocates the specificagent in the group of agents to handle the connected outbound callassociated with the specific agent routed from the predictive dialerthrough the automatic call distributor to the specific agent in thegroup of agents. In yet another alternative embodiment of the presentinvention, the CTI server also allocates the specific agent in the groupof agents to handle the connected inbound call associated with thespecific agent routed from the automatic call distributor to thespecific agent in the group of agents.

BRIEF DESCRIPTION OF THE DRAWINGS

Having thus described the invention in general terms, reference will nowbe made to the accompanying drawings, which are not necessarily drawn toscale, and wherein:

FIG. 1 is a functional block diagram showing callers in communicationwith agents through a network and call center, in accordance with anexemplary embodiment of the present invention.

FIG. 2 is a flowchart of a process for placing outbound calls associatedwith specific agents, in accordance with an exemplary embodiment of thepresent invention.

FIG. 3 is a flowchart of a process of routing inbound calls associatedwith specific agents to those specific agents, in accordance with anexemplary embodiment of the present invention.

FIG. 4 is a flowchart of a process for processing calls, each of whichis on hold for the specific agent associated with the call, inaccordance with an exemplary embodiment of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

The present invention comprises methods and systems that automaticallyroute inbound and outbound calls associated with a specific agent. Morespecifically, the present invention is directed to systems and methodsfor managing calls, both inbound and outbound, for available agents overa plurality of lines, where each call received or placed ispre-identified to be connected to one specific agent and upon theautomatic detection of the call being received or answered, the call iseither connected to the specific agent or placed in a queue for thatspecific agent. The system can comprise a standalone system handlingboth inbound and outbound phone calls or it can comprise a separatesystem (e.g., an add-on) used in communication with a company's existingserver already handling inbound calls.

The present invention is described below with reference to figures andflowchart illustrations of systems, methods, apparatuses and computerprogram products according to an embodiment of the invention. It will beunderstood that each block of the flowchart illustrations, andcombinations of blocks in the flowchart illustrations, respectively, maybe implemented by computer program instructions. These computer programinstructions may be loaded onto a general purpose computer, specialpurpose computer, or other programmable data processing apparatus toproduce a machine, such that the instructions which execute on thecomputer or other programmable data processing apparatus create meansfor implementing the functions specified in the flowchart block orblocks.

These computer program instructions may also be stored in acomputer-readable memory that can direct a computer or otherprogrammable data processing apparatus to function in a particularmanner, such that the instructions stored in the computer-readablememory produce an article of manufacture including instruction meansthat implement the function specified in the flowchart block or blocks.The computer program instructions may also be loaded onto a computer orother programmable data processing apparatus to cause a series ofoperational steps to be performed on the computer or other programmableapparatus to produce a computer implemented process such that theinstructions that execute on the computer or other programmableapparatus provide steps for implementing the functions specified in theflowchart block or blocks.

Accordingly, blocks of the flowchart illustrations support combinationsof means for performing the specified functions, combinations of stepsfor performing the specified functions and program instruction means forperforming the specified functions. It will also be understood that eachblock of the flowchart illustrations, and combinations of blocks in theflowchart illustrations, can be implemented by special purposehardware-based computer systems that perform the specified functions orsteps, or combinations of special purpose hardware and computerinstructions. The inventions may be implemented through an applicationprogram running on an operating system of a computer. The inventionsalso may be practiced with other computer system configurations,including hand-held devices, multiprocessor systems, microprocessorbased or programmable consumer electronics, mini-computers, mainframecomputers, etc.

Application programs that are components of the invention may includeroutines, programs, components, data structures, etc. that implementcertain abstract data types, perform certain tasks, actions, or tasks.In a distributed computing environment, the application program (inwhole or in part) may be located in local memory, or in other storage.In addition, or in the alternative, the application program (in whole orin part) may be located in remote memory or in storage to allow for thepractice of the inventions where tasks are performed by remoteprocessing devices linked through a communications network.

The present invention will now be described more fully hereinafter withreference to the accompanying figures, in which like numerals indicatelike elements throughout the several drawings. Some, but not allembodiments of the invention are described. Indeed, these inventions maybe embodied in many different forms and should not be construed aslimited to the embodiments set forth herein; rather, these embodimentsare provided so that this disclosure will satisfy applicable legalrequirements, be thorough and complete, and will fully convey the scopeof the invention to those skilled in the art.

FIG. 1 shows an exemplary schematic block diagram of a system inaccordance with an embodiment of the present invention that isconfigured as an add-on to an existing call center. In this embodiment,a caller 102 places a call over an analog or digital telephone network104 (e.g., the PSTN) or by utilizing voice over IP (VOIP), and the callis answered by the ACD 106, which normally will route the call (referredto as an “inbound call”) to receiving agents 112 to service the inboundcall. The ACD can be one of the numerous suitable ACDs offeredcommercially by manufacturers such as Aspect, Avaya, Nortel Networks,Siemens, Alcatel as well as others. The computer telephony integration(CTI) server 108 may allocate inbound calls to be handled by aparticular agent. One way the CTI server 108 may implement such anallocation is by instructing the ACD 106 to route the inbound call to aspecific agent in the group of receiving agents 112 based on identifyinginformation received in connection with the inbound call. The receivedidentifying information associating a specific agent with an inboundcall may be but is not limited to the telephone number (ANI) associatedwith the inbound call, or alternatively, an automated screening processmay be used to prompt a caller to press digits, or simply speak, inresponse to prompts for identifying information for a specific agent towhich the caller wishes to speak. The identifying information may be theagent's name, a customer account number, a reference number associatedwith a specific agent in the group of agent 112, or similar identifyinginformation appreciable by one of ordinary skill in the art.

The identification data associated with the phone number, agent etc. arestored in a database 114, which can be located with the CTI Server 108,on the ACD 106 (as shown in FIG. 1), or elsewhere, either local to orremote from the system. The CTI Server 108 can be any suitable CTIserver, such as a CTI Blended Agent gateway manufactured by NobleSystems or CT Connect from Intel Dialogic, Callpath from IBM, Avaya ASAIlink, Nortel Symposium, etc. The database 114 can be a suitabledatabase, such as an Informix database by IBM, an Oracle database,Microsoft SQLServer, etc.

Once an inbound call has been associated with a specific agent, then theCTI server 108 instructs the ACD 106 to route the call to the identifiedspecific agent of the receiving agents 112. The specific agent thenservices the call. This results in a specific agent in the group ofagents 112 being temporarily unavailable to receive inbound calls. Whilethe specific agent is servicing a call, additional inbound calls oroutbound placed calls (described below) associated with that specificagent may also be detected. Those calls are either terminated or placedin a queue associated with that specific agent. In an exemplaryembodiment of the present invention, while in the queue, the person onhold may be played a message to continue holding, leave a voicemail forthe agent, or schedule a callback from the specific agent. Additionally,an estimated hold time may be calculated using simple or complexalgorithms, which may include utilizing system monitored data such asaverage length of typical calls, number of agents on duty at a specifictime, etc. Further a callback feature option may be utilized in thequeue, which allows callers to have the option of receiving a callbackat a later time. The details of such functionality are described infurther detail with reference to FIG. 4 below.

If a person remains on the line, once the specific agent becomesavailable again, the specific agent is routed the longest holding callin the queue. The details of the queue operations and the specificagents actions associated with those queue operations are discussed infurther detail with reference to FIG. 4 below.

When the specific agent is available and no inbound calls are detectedthat are associated with the specific agent, nor are there any calls inthe queue for the specific agent, then the CTI Server 108 may associatedthe specific agent with a set of telephone calls, known as “outboundcalls.” Stated another way, one or more outbound calls to be placed areallocated to be handled by a specific agent before the outbound callsare placed from the call center. The outbound calls are placed by thepredictive dialer 110. The outbound calls are monitored by thepredictive dialer 110, when an outbound call is answered it is routed tothe specific agent. Notifying the specific agent in the group of agents112 that the call routed to her is an answered outbound call may occurvia a local area network (LAN) or other connection to the agents desktopPC or terminal.

If more than one outbound call is answered, then preferably the oneanswered first is routed to the specific agent, while the other answeredcall is played a message informing the caller to hold for the specificagent. That call is then placed in the queue associated with thatspecific agent. Additional information and/or interactive messages maybe played while the call is in the queue. During the placement andanswering of outbound calls associated with the specific agent,additional inbound calls determined to be associated with the agent mayalso be received by the ACD 106 of the call center. Those inbound callsmay also be routed to the queue associated with the specific agent. Inan exemplary embodiment of the present invention the functionality ofthe queue is the same for both inbound received calls and answeredoutbound calls, where the call with the longest time in the queue,regardless of being an inbound received call or an answered outboundcall, is the next call to be handled by the specific agent when shebecomes available. Other variations as to call priority are discussedbelow with reference to FIG. 4.

In an exemplary embodiment of the present invention, when the predictivedialer 110 places the outbound calls, the specific agent's phone is thenimmediately connected to a predictive dialer 110 through abi-directional voice link (e.g., using one or more lines of a Ti)connecting the ACD 106 directly to the predictive dialer 110, so thatwhen the predictive dialer 110 places the callbacks and the called partyanswers, the audio connection is immediately made between the calledparty and the specific agent of the group of agents 112.

Moreover, the predictive dialer 110 or additional processor such as adigital signal processor, ASIC, programmable IC (PIC), along with theuse of analog to digital converters and/or digital to analog converterscan monitor the telephone lines to determine if the outbound calls areanswered by a person, an answering machine, or resulted in a busysignal, disconnected signal, not in service signal, etc. Such additionalprocessor may be located with the predictive dialer 110, ACD 106, CTIServer 108, or housed separate from all three. Additionally, thedetermination of whether or not an answering machine answered theoutbound call could be conducted by monitoring the length of time ittakes for a connection to occur or how many rings occur before aconnection, etc. Traditional methods for detecting the differencebetween an answering machine and a human answering a telephone line, aredescribed in U.S. Pat. Nos. 5,371,787 and 5,724,420 among others and arewell known to one of ordinary skill in the art. The predictive dialer110 can be any suitable dialer, such as an ATOMS product by NobleSystems, a Mosaix dialer from Avaya, or ePro or Unison dialers fromConcerto, etc.

The CTI server 108 may monitor the number of outbound calls that are inprogress and those about to be made as well as the specific agent'savailability, and based at least partially thereon adjusting the numberof outbound calls placed associated with the specific agent. Additionalinformation may also be utilized by the CTI server 108 to determine howmany additional outbound calls should be associated with a specificagent and when the predictive dialer should place those outbound calls.Such information may include statistical data such as average durationof the specific agent's connected calls, the average number of connectedcalls achieved given a particular number of placed outbound calls, thehistoric times of day, month, etc. where inbound call traffic is heavy,or other data associated with system performance. The statistical datamay be stored in the database 114 or other data storage location in thesystem accessible by the CTI Server 108. Such information may beutilized by a mathematical formula or algorithm to optimize theefficiency of the specific agent while minimizing the hold times forinbound calls received or answered outbound calls. In an exemplaryembodiment of the present invention the mathematical formula oralgorithm to optimize the efficiency of the specific agent may do so bydetermining how many outbound calls associated with a specific agentshould be placed and determining the appropriate timing for initiatingeach of those calls.

In alternative embodiments of the present invention, the predictivedialer 110 may make outbound calls independent from the control of theCTI server 108. The predictive dialer 110 will automatically makeoutbound calls at the appropriate time according to an outbound callschedule stored in a call center database, such as database 114, unlessthe CTI/Server 108 overrides such functionality. For example, the CTIserver 108 or some other process could update the call center databaseif some significant event happened (e.g., power failure, fire drill,etc.). Under those or similar circumstances, the predictive dialer 110may be directed not to make the scheduled outbound calls. In anexemplary embodiment of the present invention, the scheduled outboundcalls may be callbacks scheduled by callers who originally placedinbound calls to the system but were on hold for the specific agent inthat specific agent's associated queue.

In an alternative embodiment of the present invention the controlfunctions of the CTI server 108 may be allocated to the ACD 106, thepredictive dialer 110 or both, or even another processor remote from theACD 106 and predictive dialer 110. For example, the ACD 106 andpredictive dialer 110 could be configured to communicate with each otherdirectly to the agents 112, route calls to agents 112, and control theprocesses of the callback system. Thus, the need for the CTI-server 108in implementing the callback process described in detail below may becircumvented with modification by one of ordinary skill in the art.Moreover, agents 112 could be connected directly to the predictivedialer 110 and/or the CTI server 108 while still be utilized toimplement various functions of the specific agent call managementmethods described in further detail below. A more detailed descriptionof the inbound and outbound call processing as well as the operation ofthe queue associated with a specific agent of this system in accordancewith an embodiment of the present invention is described below inconnection with FIGS. 2-4.

FIG. 2 is a flowchart of a process for placing outbound calls associatedwith specific agents, in accordance with an exemplary embodiment of thepresent invention. As shown in FIG. 2, the outbound call placing processbegins by invoking step 202 to determine the appropriate number ofoutbound calls associated with a specific agent to be placed at once orwithin a given time period. The number of outbound calls that are inprogress and those about to be made as well as the specific agent'savailability are all monitored, and based at least partially thereon thenumber of outbound calls placed associated with the specific agent isadjusted to ensure the specific agent is utilized efficiently whileminimizing the hold times for inbound calls received or answeredoutbound calls. Additional information may also be utilized to determinehow many additional outbound calls should be associated with a specificagent and when those outbound calls should be placed. Such informationmay include statistical data such as average duration of the specificagent's connected calls, the average number of connected calls achievedgiven a particular number of placed outbound calls, the historic timesof day, month, etc., where inbound call traffic is heavy, or other dataassociated with system performance. Such information further may beutilized by a mathematical formula or algorithm.

Next, step 204 retrieves the telephone numbers to be called from a datastorage location and places the outbound calls associated with aspecific agent. Step 206 monitors the calls to determine if the outboundcalls are answered by a person, an answering machine, or resulted in abusy signal, disconnected signal, not in service signal, etc. If thecall results in a busy signal, disconnected signal, not in servicesignal or no answer is detected, then the outbound call is terminated bystep 208. Alternatively, if a connection to an answering machine isdetected then a message may be played on the answering machine informingthe customer of the specific agent's identity, the purpose of the call,and any callback information such as a callback number, operating hours,appointment time, etc.

If a connection to a person is detected, then step 210 is invoked todetermine if the specific agent is available to immediately handle theanswered outbound call. If the agent is available to take the answeredoutbound call, step 214 routes the answered outbound call to thespecific agent. If the agent is not available to take the answeredoutbound call then step 212 is invoked to place the answered outboundcall on hold in the specific agent's queue. The operation of the queueis discussed with reference to FIG. 4 below.

FIG. 3 is a flowchart of a process of routing inbound calls associatedwith specific agents to those specific agents, in accordance with anexemplary embodiment of the present invention. With reference to FIG. 3,the process of routing inbound calls associated with specific agentsbegins at step 302 with the detection of an incoming call to the callcenter. In an exemplary embodiment of the present invention, if noincoming calls are currently detected, nor are any being handled by thespecific agent, then the system proceeds with the placing of outboundcalls associated with the specific agent as described above withreference to FIG. 2.

If an inbound call is detected, then step 304 is invoked to determine ifthe call is to be associated with a specific agent. The determination ofwhether or not the call is associated with a specific agent may beconducted in a number of ways including through the use of identifyinginformation received in connection with the inbound call. The receivedidentifying information associating a specific agent with an inboundcall may be but is not limited to the telephone number (ANI) associatedwith the inbound call, or alternatively, an automated screening processis used to prompt a caller to press digits, or simply speak, in responseto prompts for identifying information related to a specific agent towhich the caller wishes to speak. The identifying information mayinclude the agent's name, a customer account number, a reference numberassociated with a specific agent, or similar identifying informationappreciable by one of ordinary skill in the art.

More complex inquiries may be conducted to determine the specific agentfor which the inbound call is to be associated. For example, the callermay navigate a series of prompts which narrow the focus of theparticular reason the caller has placed the inbound call until thesystem identifies the specific agent best suited to handle the inboundcaller's needs. Such implementation of call screening prompting anddetection of digits pressed or voice recognition of a caller's responsesare well known in the art and, thus, their implementation is notdiscussed further herein.

If the call is not to be associated with a specific agent then step 306may be invoked to route the call to another agent for handling. However,if the call is to be associated with a specific agent, then step 308 isinvoked to determine if the specific agent is available to take thecall. If the agent is not available to take the answered outbound callthen step 310 is invoked to place the answered outbound call on hold inthe specific agent's queue. The operation of the queue is discussed withreference to FIG. 4 below. If the specific agent is available to takethe answered outbound call, step 312 routes the answered outbound callto the specific agent for handling.

FIG. 4 is a flowchart of a process for processing calls, each of whichis on hold for the specific agent associated with the call, inaccordance with an exemplary embodiment of the present invention.According to FIG. 4, the process of handling a call on hold for itsassociated specific agent begins at step 402 where a call, inbound oroutbound, has been placed on hold. When calls associated with a specificagent are placed on hold in that specific agent's associated queue theavailability of the specific agent for which the call is to be routed ismonitored by step 404. When the specific agent becomes available tohandle one of the calls in the queue associated with that specificagent, step 406 is invoked to route the longest holding call in thequeue to the specific agent.

In an exemplary embodiment of the present invention the functionality ofthe queue is the same for both inbound received calls and answeredoutbound calls, where the call with the longest time in the queue,regardless of being an inbound received call or an answered outboundcall, is the next call to be handled by the specific agent when shebecomes available. In an alternative embodiment of the presentinvention, inbound calls may be given priority over outbound calls inthe queue, or when an inbound call is associated with a specific agentall placement of outbound calls which have yet to be answered by acustomer are terminated. In yet another embodiment of the presentinvention, outbound calls associated with the specific agent which arescheduled callbacks to customers may be given higher priority than othercalls in a specific agent's queue and may be moved to the front of thequeue to be the next call handled by the specific agent. Othervariations to call priority are appreciable by one of ordinary skill inthe art.

If the specific agent is not available to handle the calls on hold inthe queue, step 408 is invoked where, in the exemplary embodiment of thepresent invention described in FIG. 4, each call in the queue ispresented the option of leaving a message for the specific agent andending the call in step 410, or the “caller” (both inbound calls andoutbound call recipients) may chose not to continue to wait for theholding period associated with that particular call, which is dependenton its order in the queue, by returning to step 402.

In alternative embodiments of the present invention, while in the queue,the person on hold may be played a message to either continue holding,leave a voicemail for the agent, and/or schedule a callback from thespecific agent. Further, an estimated hold time may be calculated foreach caller in the queue using simple or complex algorithms which mayinclude utilizing system monitored data such as average length oftypical calls, number of agents on duty at a specific time, etc. Thecaller may then be informed of the estimated hold time. Once theestimated hold time reaches a predetermined length and/or number ofcalls, then a callback feature option in accordance with the presentinvention may be implemented. The callback feature allows callers in thequeue to have the option of receiving a callback at a later time. Thecallback can be made to a caller-specified number at the time the callerwould have expected to be sent to the specific agent if she had stay inthe holding queue based on estimated hold times, or alternatively thecallback may occur at a time suggested by the system or at a timeselected by the caller. As callbacks are made the estimated hold timefor new callers is adjusted for this decrease in agent availability tohandle any new calls.

In an alternative embodiment of the present invention, the callbackoption offered to customers in the specific agent's queue could beimplemented as a special convenience for select customers, subscribers,or those who meet certain customer criteria, which may be based on thetelephone number being dialed or called from, customers with an existingaccount, customers who subscribed to the service or a benefits packagethat includes the service, or based on a particular customer statuslevel, or based on alternative or additional criteria as appreciated byone of ordinary skill in the art.

Further, in the exemplary embodiment of the present invention shown inFIG. 4, step 410 includes the specific agent being automatically routedthe voicemail when it completes the call or calls the specific agent ishandling. The specific agent may then choose to return the call of thecaller who left the voicemail, or, alternatively if the caller requesteda callback, or the specific agent initiates a callback, the system mayautomatically place an outbound call to the caller to route to thespecific agent when an answer is detected by the system.

Many modifications and other embodiments of the inventions set forthherein will come to mind to one skilled in the art to which theseinventions pertain having the benefit of the teachings presented in theforegoing descriptions and the associated drawings. Therefore, it is tobe understood that the inventions are not to be limited to the specificembodiments disclosed and that modifications and other embodiments areintended to be included within the scope of the appended claims.Although specific terms are employed herein, they are used in a genericand descriptive sense only and not for purposes of limitation.

That which is claimed:
 1. A method for managing inbound calls andoutbound calls for a specific agent of a call center, the methodcomprising the steps of: (a) determining whether the specific agent isavailable to handle an inbound call or an outbound call; (b) detecting,by a telephony server, whether a received inbound call by the callcenter from a caller is available for the specific agent to handle; and(c) after determining the specific agent is available and detectingthere is no received inbound call available for the specific agent tohandle: (1) associating the specific agent, by the telephony server,with a plurality of outbound calls placed from the call center to aplurality of called parties; (2) after detecting one of the plurality ofoutbound calls has been answered and the specific agent is stillavailable, routing the one of the plurality of outbound calls to thespecific agent to handle; and (3) detecting, by the telephony server, asubsequent inbound call has been received by the call center from afurther caller following the step of associating the specific agent withthe plurality of outbound calls; (4) after detecting the subsequentinbound call, determining whether the specific agent is available; (5)routing the subsequent inbound call to the specific agent to handle ifthe specific agent is available; (6) placing the subsequent inbound callin a queue associated with the specific agent if the specific agent isnot available; and (7) after routing the subsequent inbound call to thespecific agent and while the specific agent is handling the subsequentinbound call: (a) detecting, by the telephony server, a subsequentoutbound call of the plurality of outbound calls that has been answered;and (b) placing the subsequent outbound call in the queue associatedwith the specific agent if the specific agent is not available.
 2. Themethod of claim 1 further comprising the step of placing the pluralityof outbound calls to the plurality of called parties after the pluralityof specific calls has been associated with the specific agent.
 3. Themethod of claim 1 further comprising the step of, after determining thespecific agent has handled the subsequent inbound call and is available,routing the subsequent outbound call placed in the queue to the specificagent to handle.
 4. The method of claim 1 further comprising the step ofplaying a message to the called party of the subsequent outbound callplaced in the queue to: (1) continue holding for the specific agent tobecome available; (2) leave a voicemail for the specific agent; or (3)schedule a callback from the specific agent.
 5. The method of claim 1further comprising the steps of: calculating an estimated hold time forthe subsequent outbound call remaining in the queue; and in response todetermining the estimated hold time exceeds a predetermined length oftime, providing the called party an option to receive a callback fromthe specific agent at a later time.
 6. The method of claim 1 furthercomprising the steps of: determining a number of inbound calls andoutbound calls in the queue; and in response to determining the numberexceeds a predetermined number, providing the called party an option toreceive a callback from the specific agent at a later time.
 7. Atangible computer-readable storage medium comprising computer-executableinstructions for managing inbound calls and outbound calls for aspecific agent of a call center, the computer-executable instructionsbeing configured, when executed by at least one computer processor, to:(a) determine whether the specific agent is available to handle aninbound call or an outbound call; (b) detect whether a received inboundcall by the call center from a caller is available for the specificagent to handle; and (c) after determining the specific agent isavailable and detecting there is no received inbound call for thespecific agent to handle: (1) associate the specific agent with aplurality of outbound calls placed from the call center to a pluralityof called parties; (2) after detecting one of the plurality of outboundcalls has been answered and the specific agent is still available, routethe one of the plurality of outbound calls to the specific agent tohandle; (3) detect a subsequent inbound call has been received by thecall center from a further caller following associating the specificagent with the plurality of outbound calls; (4) after detecting thesubsequent inbound call, determine whether the specific agent isavailable; (5) route the subsequent inbound call to the specific agentto handle if the specific agent is determined to be available; (6) placethe subsequent inbound call in a queue associated with the specificagent if the specific agent is determined not to be available; and (7)after routing the subsequent inbound call to the specific agent andwhile the specific agent is handling the subsequent inbound call: (a)detect a subsequent outbound call of the plurality of outbound callsthat has been answered; and (b) place the subsequent outbound call inthe queue associated with the specific agent if the specific agent isdetermined not to be available.
 8. The computer-readable storage mediumof claim 7, wherein the computer-readable instructions are furtherconfigured to place the plurality of outbound calls to the plurality ofcalled parties after the plurality of specific calls has been associatedwith the specific agent.
 9. The computer-readable storage medium ofclaim 7, wherein the computer-readable instructions are furtherconfigured to route the subsequent outbound call placed in the queue tothe specific agent to handle after determining the specific agent hashandled the subsequent inbound call and is available.
 10. Thecomputer-readable storage medium of claim 7, wherein thecomputer-readable instructions are further configured to play a messageto the called party of the subsequent outbound call placed in the queueto: (1) continue holding for the specific agent to become available; (2)leave a voicemail for the specific agent; or (3) schedule a callbackfrom the specific agent.
 11. The computer-readable storage medium ofclaim 7, wherein the computer-readable instructions are furtherconfigured to: calculate an estimated hold time for the subsequentoutbound call remaining in the queue; and in response to determining theestimated hold time exceeds a predetermined length of time, provide thecalled party an option to receive a callback from the specific agent ata later time.
 12. The computer-readable storage medium of claim 7,wherein the computer-readable instructions are further configured to:determine a number of inbound calls and outbound calls in the queue; andin response to determining the number exceeds a predetermined number,provide the called party an option to receive a callback from thespecific agent at a later time.
 13. A system for managing a specificagent of a call center, the system comprising: a telephony serverconfigured to: (a) determine whether the specific agent is available tohandle an inbound call or an outbound call; (b) detect whether areceived inbound call by the call center from a caller is available forthe specific agent to handle; and (c) after determining the specificagent is available and detecting there is not the received inbound callfor the specific agent to handle: (1) associate the specific agent witha plurality of outbound calls placed from the call center to a pluralityof called parties; (2) after detecting one of the plurality of outboundcalls has been answered and the specific agent is still available,instruct an automatic call distributor to route the one of the pluralityof outbound calls to the specific agent to handle; (3) detect asubsequent inbound call has been received by the call center from afurther caller following associating the specific agent with theplurality of outbound calls; (4) after detecting the subsequent inboundcall, determine whether the specific agent is available; (5) instructthe automatic call distributor to route the subsequent inbound call tothe specific agent to handle if the specific agent is determined to beavailable; (6) instruct the automatic call distributor to place thesubsequent inbound call in a queue associated with the specific agent ifthe specific agent is determined not to be available; and (7) afterrouting the subsequent inbound call to the specific agent and while thespecific agent is handling the subsequent inbound call: (a) detect asubsequent outbound call of the plurality of outbound calls that hasbeen answered; and (b) instruct the automatic call distributor to placethe subsequent outbound call in the queue associated with the specificagent if the specific agent is determined not to be available.
 14. Thesystem of claim 13, wherein the telephony server is further configuredto instruct a predictive dialer to place the plurality of outbound callsto the plurality of called parties after the plurality of specific callshas been associated with the specific agent.
 15. The system of claim 13,wherein the telephony server is further configured to route thesubsequent outbound call placed in the queue to the specific agent tohandle after determining the specific agent has handled the subsequentinbound call and is available.
 16. The system of claim 13, wherein thetelephony server is further configured to play a message to the calledparty of the subsequent outbound call placed in the queue to: (1)continue holding for the specific agent to become available; (2) leave avoicemail for the specific agent; or (3) schedule a callback from thespecific agent.
 17. The system of claim 13, wherein the telephony serveris further configured to: calculate an estimated hold time for thesubsequent outbound call remaining in the queue; and in response todetermining the estimated hold time exceeds a predetermined length oftime, provide the called party an option to receive a callback from thespecific agent at a later time.
 18. The system of claim 13, wherein thetelephony server is further configured to: determine a number of inboundcalls and outbound calls in the queue; and in response to determiningthe number exceeds a predetermined number, provide the called party anoption to receive a callback from the specific agent at a later time.